home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Taifun / Taifun 099 (1989-05-15)(Ossowski, Stefan)(DE)(PD).zip / Taifun 099 (1989-05-15)(Ossowski, Stefan)(DE)(PD).adf / PCQ / Runtime / dos.asm < prev    next >
Assembly Source File  |  1989-03-31  |  5KB  |  321 lines

  1.  
  2. *    DOS.asm (of PCQ Pascal runtime library)
  3. *    Copyright (c) 1989 Patrick Quaid
  4.  
  5. *    This module implements the calls to the DOS routines.  In a
  6. *    perfect world each of these calls would be in a separate
  7. *    hunk, but there you go.  The reason you don't need to open
  8. *    dos.library again, by the way, is that this file makes the
  9. *    following external reference:
  10.  
  11.     XREF    _p%DOSBase
  12.  
  13.     section    one
  14.  
  15.     XDEF    _GetFileHandle
  16. _GetFileHandle
  17.     move.l    4(sp),a0
  18.     move.l    (a0),d0
  19.     rts
  20.  
  21.     XDEF    _DOSClose
  22. _DOSClose
  23.     move.l    4(sp),d1
  24.     move.l    _p%DOSBase,a6
  25.     jsr    _LVOClose(a6)
  26.     rts
  27.  
  28.     XDEF    _CreateDir
  29. _CreateDir
  30.     move.l    4(sp),d1
  31.     move.l    _p%DOSBase,a6
  32.     jsr    _LVOCreateDir(a6)
  33.     rts
  34.  
  35.     XDEF    _CurrentDir
  36. _CurrentDir
  37.     move.l    4(sp),d1
  38.     move.l    _p%DOSBase,a6
  39.     jsr    _LVOCurrentDir(a6)
  40.     rts
  41.  
  42.     XDEF    _DeleteFile
  43. _DeleteFile
  44.     move.l    4(sp),d1
  45.     move.l    _p%DOSBase,a6
  46.     jsr    _LVODeleteFile(a6)
  47.     rts
  48.  
  49.     XDEF    _DupLock
  50. _DupLock
  51.     move.l    4(sp),d1
  52.     move.l    _p%DOSBase,a6
  53.     jsr    _LVODupLock(a6)
  54.     rts
  55.  
  56.     XDEF    _Examine
  57. _Examine
  58.     move.l    d2,-(sp)
  59.     move.l    12(sp),d1
  60.     move.l    8(sp),d2
  61.     move.l    _p%DOSBase,a6
  62.     jsr    _LVOExamine(a6)
  63.     move.l    (sp)+,d2
  64.     rts
  65.  
  66.     XDEF    _ExNext
  67. _ExNext
  68.     move.l    d2,-(sp)
  69.     move.l    12(sp),d1
  70.     move.l    8(sp),d2
  71.     move.l    _p%DOSBase,a6
  72.     jsr    _LVOExNext(a6)
  73.     move.l    (sp)+,d2
  74.     rts
  75.  
  76.     XDEF    _Info
  77. _Info
  78.     move.l    d2,-(sp)
  79.     move.l    12(sp),d1
  80.     move.l    8(sp),d2
  81.     move.l    _p%DOSBase,a6
  82.     jsr    _LVOInfo(a6)
  83.     move.l    (sp)+,d2
  84.     rts
  85.  
  86.     XDEF    _Input
  87. _Input
  88.     move.l    _p%DOSBase,a6
  89.     jsr    _LVOInput(a6)
  90.     rts
  91.  
  92.     XDEF    _IoErr
  93. _IoErr
  94.     move.l    _p%DOSBase,a6
  95.     jsr    _LVOIoErr(a6)
  96.     rts
  97.  
  98.     XDEF    _IsInteractive
  99. _IsInteractive
  100.     move.l    4(sp),d1
  101.     move.l    _p%DOSBase,a6
  102.     jsr    _LVOIsInteractive(a6)
  103.     rts
  104.  
  105.     XDEF    _Lock
  106. _Lock
  107.     move.l    d2,-(sp)
  108.     move.l    12(sp),d1
  109.     move.l    8(sp),d2
  110.     move.l    _p%DOSBase,a6
  111.     jsr    _LVOLock(a6)
  112.     move.l    (sp)+,d2
  113.     rts
  114.  
  115.     XDEF    _DOSOpen
  116. _DOSOpen
  117.     move.l    d2,-(sp)
  118.     move.l    12(sp),d1
  119.     move.l    8(sp),d2
  120.     move.l    _p%DOSBase,a6
  121.     jsr    _LVOOpen(a6)
  122.     move.l    (sp)+,d2
  123.     rts
  124.  
  125.     XDEF    _Output
  126. _Output
  127.     move.l    _p%DOSBase,a6
  128.     jsr    _LVOOutput(a6)
  129.     rts
  130.  
  131.     XDEF    _ParentDir
  132. _ParentDir
  133.     move.l    4(sp),d1
  134.     move.l    _p%DOSBase,a6
  135.     jsr    _LVOParentDir(a6)
  136.     rts
  137.  
  138.     XDEF    _DOSRead
  139. _DOSRead
  140.     movem.l    d2-d3,-(sp)
  141.     move.l    20(sp),d1
  142.     move.l    16(sp),d2
  143.     move.l    12(sp),d3
  144.     move.l    _p%DOSBase,a6
  145.     jsr    _LVORead(a6)
  146.     movem.l    (sp)+,d2-d3
  147.     rts
  148.  
  149.     XDEF    _Rename
  150. _Rename
  151.     move.l    d2,-(sp)
  152.     move.l    12(sp),d1
  153.     move.l    8(sp),d2
  154.     move.l    _p%DOSBase,a6
  155.     jsr    _LVORename(a6)
  156.     move.l    (sp)+,d2
  157.     rts
  158.  
  159.     XDEF    _Seek
  160. _Seek
  161.     movem.l    d2-d3,-(sp)
  162.     move.l    20(sp),d1
  163.     move.l    16(sp),d2
  164.     move.l    12(sp),d3
  165.     move.l    _p%DOSBase,a6
  166.     jsr    _LVOSeek(a6)
  167.     movem.l    (sp)+,d2-d3
  168.     rts
  169.  
  170.     XDEF    _SetComment
  171. _SetComment
  172.     move.l    d2,-(sp)
  173.     move.l    12(sp),d1
  174.     move.l    8(sp),d2
  175.     move.l    _p%DOSBase,a6
  176.     jsr    _LVOSetComment(a6)
  177.     move.l    (sp)+,d2
  178.     rts
  179.  
  180.     XDEF    _SetProtection
  181. _SetProtection
  182.     move.l    d2,-(sp)
  183.     move.l    12(sp),d1
  184.     move.l    8(sp),d2
  185.     move.l    _p%DOSBase,a6
  186.     jsr    _LVOSetProtection(a6)
  187.     move.l    (sp)+,d2
  188.     rts
  189.  
  190.     XDEF    _UnLock
  191. _UnLock
  192.     move.l    4(sp),d1
  193.     move.l    _p%DOSBase,a6
  194.     jsr    _LVOUnLock(a6)
  195.     rts
  196.  
  197.     XDEF    _WaitForChar
  198. _WaitForChar
  199.     move.l    d2,-(sp)
  200.     move.l    12(sp),d1
  201.     move.l    8(sp),d2
  202.     move.l    _p%DOSBase,a6
  203.     jsr    _LVOWaitForChar(a6)
  204.     move.l    (sp)+,d2
  205.     rts
  206.  
  207.     XDEF    _DOSWrite
  208. _DOSWrite
  209.     movem.l    d2-d3,-(sp)
  210.     move.l    20(sp),d1
  211.     move.l    16(sp),d2
  212.     move.l    12(sp),d3
  213.     move.l    _p%DOSBase,a6
  214.     jsr    _LVOWrite(a6)
  215.     movem.l    (sp)+,d2-d3
  216.     rts
  217.  
  218.     XDEF    _CreateProc
  219. _CreateProc
  220.     movem.l    d2-d4,-(sp)
  221.     move.l    28(sp),d1
  222.     move.l    24(sp),d2
  223.     move.l    20(sp),d3
  224.     move.l    16(sp),d4
  225.     move.l    _p%DOSBase,a6
  226.     jsr    _LVOCreateProc(a6)
  227.     movem.l    (sp)+,d2-d4
  228.     rts
  229.  
  230.     XDEF    _DateStamp
  231. _DateStamp
  232.     move.l    4(sp),d1
  233.     move.l    _p%DOSBase,a6
  234.     jsr    _LVODateStamp(a6)
  235.     rts
  236.  
  237.     XDEF    _Delay
  238. _Delay
  239.     move.l    4(sp),d1
  240.     move.l    _p%DOSBase,a6
  241.     jsr    _LVODelay(a6)
  242.     rts
  243.  
  244.     XDEF    _DeviceProc
  245. _DeviceProc
  246.     move.l    4(sp),d1
  247.     move.l    _p%DOSBase,a6
  248.     jsr    _LVODeviceProc(a6)
  249.     rts
  250.  
  251.     XDEF    _DOSExit
  252. _DOSExit
  253.     move.l    4(sp),d1
  254.     move.l    _p%DOSBase,a6
  255.     jsr    _LVOExit(a6)
  256.     rts
  257.  
  258.     XDEF    _Execute
  259. _Execute
  260.     movem.l    d2-d3,-(sp)
  261.     move.l    20(sp),d1
  262.     move.l    16(sp),d2
  263.     move.l    12(sp),d3
  264.     move.l    _p%DOSBase,a6
  265.     jsr    _LVOExecute(a6)
  266.     movem.l    (sp)+,d2-d3
  267.     rts
  268.  
  269.     XDEF    _LoadSeg
  270. _LoadSeg
  271.     move.l    4(sp),d1
  272.     move.l    _p%DOSBase,a6
  273.     jsr    _LVOLoadSeg(a6)
  274.     rts
  275.  
  276.     XDEF    _UnLoadSeg
  277. _UnLoadSeg
  278.     move.l    4(sp),d1
  279.     move.l    _p%DOSBase,a6
  280.     jsr    _LVOUnLoadSeg(a6)
  281.     rts
  282.  
  283. *    I should get around to defining these things in this file,
  284. *    but I suppose it can wait.
  285.  
  286.     XREF    _LVOExecute
  287.     XREF    _LVOIsInteractive
  288.     XREF    _LVOParentDir
  289.     XREF    _LVOWaitForChar
  290.     XREF    _LVODelay
  291.     XREF    _LVODateStamp
  292.     XREF    _LVOSetProtection
  293.     XREF    _LVOSetComment
  294.     XREF    _LVODeviceProc
  295.     XREF    _LVOQueuePacket
  296.     XREF    _LVOGetPacket
  297.     XREF    _LVOUnLoadSeg
  298.     XREF    _LVOLoadSeg
  299.     XREF    _LVOExit
  300.     XREF    _LVOCreateProc
  301.     XREF    _LVOIoErr
  302.     XREF    _LVOCurrentDir
  303.     XREF    _LVOCreateDir
  304.     XREF    _LVOInfo
  305.     XREF    _LVOExNext
  306.     XREF    _LVOExamine
  307.     XREF    _LVODupLock
  308.     XREF    _LVOUnLock
  309.     XREF    _LVOLock
  310.     XREF    _LVORename
  311.     XREF    _LVODeleteFile
  312.     XREF    _LVOSeek
  313.     XREF    _LVOOutput
  314.     XREF    _LVOInput
  315.     XREF    _LVOWrite
  316.     XREF    _LVORead
  317.     XREF    _LVOClose
  318.     XREF    _LVOOpen
  319.  
  320.     END
  321.